package wrapper;

public class IntegerDemo {
    public static void main(String[] args) {
        /*//int   Integer
        Integer i1=new Integer(2);
        Integer i2=new Integer(2);
        System.out.println(i1==i2);//false
        //Integer重写了equals方法
        System.out.println(i1.equals(i2));//true
        //valueOf
        //valueOf会复用一个字节缓存（-128~127），复用性好，建议使用
        Integer i3=Integer.valueOf(3);
        Integer i4=Integer.valueOf(3);
        System.out.println(i3==i4);//true
        System.out.println(i3.equals(i4));//true*/

        /*Integer integer=new Integer("2");
        System.out.println(integer);
        //演示基本类型与包装类型之间的相互转换
        Integer i=Integer.valueOf(5);//基本数类型转换成包装数据类型
        int j=i.intValue();//包装数据类型转换成基本数据类型

        Integer m=5;//自动装箱
        //触发了自动装箱特性，编译器会将该语句编译为：Integer m=Integer.valueOf(5);
        int n=m;//自动拆箱
        //触发了自动拆箱特性，编译器会将该语句编译为：int n=m.intValue();*/
        //演示包装类的常用操作
        //1. 通过包装类获取基本数据的类型
        double max=Double.MAX_VALUE;
        double min=Double.MIN_VALUE;
        System.out.println("double的最大值为："+max+"double的最小值为："+min);
        long maxlong=Long.MAX_VALUE;
        long minlong=Long.MIN_VALUE;
        System.out.println("long的最大值为："+maxlong+"long的最小值为："+minlong);

        //2. 包装类可以将字符串类型转换为对应的基本类型
        //String------------int
        String str1="90";
        int i=Integer.parseInt(str1);
        //判断str1与i的数据类型是否相同
        System.out.println(str1.getClass());
        System.out.println(str1);
        System.out.println(i);
        //dobule----------String
        String str2="3.14";
        double d=Double.parseDouble(str2);
        System.out.println(str2);

        /*Character char1=new Character('a');
        char cha2=char1.charValue();
        System.out.println(cha2);*/


    }
}
